home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / pascal / tjoop11.zip / STCKTEST.PAS < prev   
Pascal/Delphi Source File  |  1991-05-16  |  1KB  |  60 lines

  1. PROGRAM MyStack ;
  2.  
  3. USES
  4.        CRT ,
  5.        StackOBJ ,
  6.        BaseTypes ,
  7.        Elements ;
  8.  
  9.  
  10. VAR
  11.        s                               : PStackOBJ ;
  12.        d                               : PElementOBJ ;
  13.  
  14.  
  15.  
  16. BEGIN  {  *******  MAIN  *******  }
  17.  
  18.   WriteLn ;
  19.  
  20.   WriteLn ( 'Memory before operation                : ' , MemAvail : 5 ) ;
  21.  
  22.   s := New ( PStackObj , Init ) ;
  23.  
  24.   s^.Push ( New ( PStrOBJ , Init ( 'One!' ) ) ) ;
  25.   s^.Push ( New ( PRealOBJ , Init ( 1.5 ) ) ) ;
  26.   s^.Push ( New ( PStrOBJ , Init ( 'Two!' ) ) ) ;
  27.   s^.Push ( New ( PRealOBJ , Init ( 2.5 ) ) ) ;
  28.  
  29.   WriteLn ( 'Memory with four items                 : ' , MemAvail : 5 ) ;
  30.  
  31.   s^.Push ( New ( PIntOBJ , Init ( 3 ) ) ) ;
  32.   s^.Push ( New ( PRealOBJ , Init ( 3.5 ) ) ) ;
  33.   s^.Push ( New ( PIntOBJ , Init ( 4 ) ) ) ;
  34.  
  35.   WriteLn ( 'Memory with three more items           : ' , MemAvail : 5 ) ;
  36.  
  37.  
  38.   WHILE ( NOT ( s^.Empty ) )
  39.    DO
  40.     BEGIN
  41.  
  42.       d := PElementOBJ ( s^.Pop ) ;
  43.  
  44.       d^.Display ;
  45.  
  46.       Write ( ' ' ) ;
  47.  
  48.       Dispose ( d , Done ) ;
  49.  
  50.       END ;  {  WHILE  }
  51.  
  52.   WriteLn ;
  53.  
  54.   WriteLn ( 'Memory after disposing of all elements : ' , MemAvail : 5 ) ;
  55.  
  56.   Dispose ( s , Done ) ;
  57.  
  58.   WriteLn ( 'Memory after disposing of the stack    : ' , MemAvail : 5 ) ;
  59.  
  60. END .